package com.winhxd.b2c.product.dao;

import com.winhxd.b2c.common.domain.product.model.ProductCategory;
import com.winhxd.b2c.common.domain.product.vo.ProductQueryWithCategoryVO;
import org.apache.ibatis.annotations.MapKey;

import java.util.List;
import java.util.Map;


/**
 * @author luosixiang
 */
public interface ProductCategoryMapper {

    /**
       *  描述
       * @author luosixiang
       * @date 11:51 2019/1/18
       * @param id
       * @return int
       **/

    int deleteByPrimaryKey(Long id);

    /**
       *  描述
       * @author luosixiang
       * @date 11:51 2019/1/18
       * @param record
       * @return int
       **/

    int insert(ProductCategory record);

    /**
       *  描述
       * @author luosixiang
       * @date 11:51 2019/1/18
       * @param record
       * @return java.lang.Integer
       **/

    Integer insertSelective(ProductCategory record);

    /**
       *  描述
       * @author luosixiang
       * @date 11:51 2019/1/18
       * @param id
       * @return com.winhxd.b2c.common.domain.product.model.ProductCategory
       **/
    ProductCategory selectByPrimaryKey(Long id);
    /**
       *  描述
       * @author luosixiang
       * @date 11:50 2019/1/18
       * @param productCategory
       * @return java.util.List<com.winhxd.b2c.common.domain.product.model.ProductCategory>
       **/

    List<ProductCategory> selectByModel(ProductCategory productCategory);

     /**
       *  描述
       * @author luosixiang
       * @date 11:48 2019/1/18
       * @param record
       * @return int
       **/
    int updateByPrimaryKeySelective(ProductCategory record);

    /**
       *  描述
       * @author luosixiang
       * @date 11:48 2019/1/18
       * @param record
       * @return int
       **/

    int updateByPrimaryKey(ProductCategory record);

    /**
     * 查询返回map格式的分类信息
     * 手机端组装首页分类使用
     * @param productCategory
     * @return
     */
    @MapKey("id")
    Map<Long,ProductQueryWithCategoryVO> selectByModelMap(ProductCategory productCategory);
}